/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package upeu.cepre.business;

import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import upeu.cepre.model.Alumno;
import upeu.cepre.util.DataBaseConexion;

/**
 *
 * @author Elvis Zanguetsu
 */
public class AlumnoManager {

    public Connection connection;

    public List<Alumno> Report() {

        List<Alumno> alumnos = new ArrayList<Alumno>();
        Alumno alum = new Alumno();
        try {

            connection = DataBaseConexion.getConexion();
            Statement statement = connection.createStatement();
            ResultSet rs = statement.executeQuery("select * from alumno");
            while (rs.next()) {


                alum.setIdAlumno(rs.getString("idAlumno"));
                alum.setNombre(rs.getString("nombre"));
                alum.setApellidoPaterno(rs.getString("apellidoPaterno"));
                alum.setApellidoMaterno(rs.getString("apellidoMaterno"));
                alum.setDireccion(rs.getString("direccion"));
                alum.setDni(rs.getString("dni"));
                alum.setFechaNacimiento(rs.getString("fechaNacimiento"));
                alum.setTelefono(rs.getString("telefono"));
                alum.setEstado(rs.getString("estado"));
                alum.setUsuario(rs.getString("usuario"));
                alum.setContraseña(rs.getString("contraseña"));

                alumnos.add(alum);
            }

            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return alumnos;
    }

    public Alumno finById(String idalumno) {
        Alumno alumno = new Alumno();


        try {
            connection = DataBaseConexion.getConexion();
            PreparedStatement preparedStatement = connection.prepareStatement("select * from alumno where idAlumno=?");
            preparedStatement.setString(1, idalumno);
            ResultSet rs = preparedStatement.executeQuery();

            if (rs.next()) {

                alumno.setIdAlumno(rs.getString("idAlumno"));
                alumno.setNombre(rs.getString("nombre"));
                alumno.setApellidoPaterno(rs.getString("apellidoPaterno"));
                alumno.setApellidoMaterno(rs.getString("apellidoMaterno"));
                alumno.setDireccion(rs.getString("direccion"));
                alumno.setDni(rs.getString("dni"));
                alumno.setFechaNacimiento(rs.getString("fechaNacimiento"));
                alumno.setTelefono(rs.getString("telefono"));
                alumno.setEstado(rs.getString("estado"));
                alumno.setUsuario(rs.getString("usuario"));
                alumno.setContraseña(rs.getString("contraseña"));
                alumno.setNacionalidad(rs.getString("nacionalidad"));
                alumno.setLugarNacimiento(rs.getString("lugarNacimiento"));
                alumno.setSexo(rs.getString("sexo"));
                alumno.setEstadoCivil(rs.getString("estadoCivil"));
                alumno.setEmail(rs.getString("email"));
                alumno.setReligion(rs.getString("religion"));
                alumno.setBautizado(rs.getString("bautizado"));
                alumno.setDistrito(rs.getString("distrito"));
                alumno.setProvincia(rs.getString("provincia"));
                alumno.setDepartamento(rs.getString("departamento"));
                alumno.setPais(rs.getString("pais"));
                alumno.setNombreInstitucion(rs.getString("nombreInstitucion"));
                alumno.setAñoEgreso(rs.getString("añoEgreso"));
                alumno.setLugar(rs.getString("lugar"));
                alumno.setTipoColegio(rs.getString("tipoColegio"));
                alumno.setMedioInformacion(rs.getString("medioInformacion"));
                alumno.setIdPadre(rs.getString("idPadre"));



            }

            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return alumno;
    }

    public void Add(Alumno alum) {
        try {
            connection = DataBaseConexion.getConexion();
            PreparedStatement preparedStatement =
                    connection.prepareStatement(
                    "insert into alumno(idAlumno , nombre , apellidoPaterno , apellidoMaterno , fechaNacimiento , dni , direccion , telefono , estado, usuario, contraseña,"
                    + " nacionalidad , lugarNacimiento , sexo , estadoCivil , email , religion , bautizado , distrito , provincia , departamento , pais , "
                    + "nombreInstitucion , añoEgreso , lugar, tipoColegio, medioInformacion,idPadre) values (  ?,? , ? , ? , ? , ? , ? , ? , ?, ?, ?, ? , ? , ? , ? , ? , ? ,? , ? , ? , ? , ? , ? , ? , ?, ?, ?, ?)");

            preparedStatement.setString(1, alum.getIdAlumno());
            preparedStatement.setString(2, alum.getNombre());
            preparedStatement.setString(3, alum.getApellidoPaterno());
            preparedStatement.setString(4, alum.getApellidoMaterno());
            preparedStatement.setString(5, alum.getFechaNacimiento());
            preparedStatement.setString(6, alum.getDni());
            preparedStatement.setString(7, alum.getDireccion());
            preparedStatement.setString(8, alum.getTelefono());
            preparedStatement.setString(9, alum.getEstado());
            preparedStatement.setString(10, alum.getUsuario());
            preparedStatement.setString(11, alum.getContraseña());
            preparedStatement.setString(12, alum.getNacionalidad());
            preparedStatement.setString(13, alum.getLugarNacimiento());
            preparedStatement.setString(14, alum.getSexo());
            preparedStatement.setString(15, alum.getEstadoCivil());
            preparedStatement.setString(16, alum.getEmail());
            preparedStatement.setString(17, alum.getReligion());
            preparedStatement.setString(18, alum.getBautizado());
            preparedStatement.setString(19, alum.getDistrito());
            preparedStatement.setString(20, alum.getProvincia());
            preparedStatement.setString(21, alum.getDepartamento());
            preparedStatement.setString(22, alum.getPais());
            preparedStatement.setString(23, alum.getNombreInstitucion());
            preparedStatement.setString(24, alum.getAñoEgreso());
            preparedStatement.setString(25, alum.getLugar());
            preparedStatement.setString(26, alum.getTipoColegio());
            preparedStatement.setString(27, alum.getMedioInformacion());
            preparedStatement.setString(28, alum.getIdPadre());

            preparedStatement.executeUpdate();
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }


    }

    public String ObtenerId() {

        java.util.Date ahora = new java.util.Date();
        SimpleDateFormat formateador = new SimpleDateFormat("ddMMyyyy");
        AlumnoManager trabManager = new AlumnoManager();
        int a = trabManager.Report().size();
        return formateador.format(ahora) + "Alumno" + (a + 1);

    }
    
        public void Update(Alumno alum) {
        try {
            connection = DataBaseConexion.getConexion();
            PreparedStatement preparedStatement = connection.prepareStatement(
                    " UPDATE  alumno SET idAlumno = ? , nombre = ?, apellidoPaterno = ? , apellidoMaterno = ? , fechaNacimiento = ? , dni = ? , direccion = ? , telefono = ? , estado = ? , usuario = ? , contraseña = ? , nacionalidad = ? ,  lugarNacimiento = ? , sexo = ? , estadoCivil = ? , email = ? , religion = ? , bautizado = ? ,  distrito = ?,  provincia = ? ,  departamento = ? ,  pais =? , nombreInstitucion = ? , añoEgreso = ? ,  lugar =  ? ,  tipoColegio  =  ? ,  medioInformacion  =  ? ,  idPadre  = ?  where idAlumno =?");
            // Parameters start with 1

            preparedStatement.setString(1, alum.getIdAlumno());
            preparedStatement.setString(2, alum.getNombre());
            preparedStatement.setString(3, alum.getApellidoPaterno());
            preparedStatement.setString(4, alum.getApellidoMaterno());
            preparedStatement.setString(5, alum.getFechaNacimiento());
            preparedStatement.setString(6, alum.getDni());
            preparedStatement.setString(7, alum.getDireccion());
            preparedStatement.setString(8, alum.getTelefono());
            preparedStatement.setString(9, alum.getEstado());
            preparedStatement.setString(10, alum.getUsuario());
            preparedStatement.setString(11, alum.getContraseña());
            preparedStatement.setString(12, alum.getNacionalidad());
            preparedStatement.setString(13, alum.getLugarNacimiento());
            preparedStatement.setString(14, alum.getSexo());
            preparedStatement.setString(15, alum.getEstadoCivil());
            preparedStatement.setString(16, alum.getEmail());
            preparedStatement.setString(17, alum.getReligion());
            preparedStatement.setString(18, alum.getBautizado());
            preparedStatement.setString(19, alum.getDistrito());
            preparedStatement.setString(20, alum.getProvincia());
            preparedStatement.setString(21, alum.getDepartamento());
            preparedStatement.setString(22, alum.getPais());
            preparedStatement.setString(23, alum.getNombreInstitucion());
            preparedStatement.setString(24, alum.getAñoEgreso());
            preparedStatement.setString(25, alum.getLugar());
            preparedStatement.setString(26, alum.getTipoColegio());
            preparedStatement.setString(27, alum.getMedioInformacion());
            preparedStatement.setString(28, alum.getIdPadre());
              preparedStatement.setString(29, alum.getIdAlumno());


            preparedStatement.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
